////
////  TSCMyAlertView.m
////  Tsc_IOS
////
////  Created by Rio on 15-5-18.
////  Copyright (c) 2015年 idream. All rights reserved.
////
//
//#define ELEMENT_HEIGHT 50 // 每一个UI元素的高度
//#define PROCESSING_INDICATOR_WH 20 // 进度指示器的宽高
//#define PROCESSING_INDICATOR_PADDING 5
//#define HLSH 1 // Horizontal Line Seperator Height
//#define VLSW 1 // Vertical Line Seperator Witdh
//#define APPEAR_DISAPPEAR_TI 0.2 // 动画淡入、淡出的时间
//
//#import "TSCMyDialog.h"
//#import "TSCMyUtil.h"
//#import "TSCConstants.h"
//#import "TSCMyUIUtil.h"
//
//typedef void(^BtnClickBlock)(UIButton *, TSCMyDialog *);
//
//@implementation TSCMyDialog {
//    UIViewController * _viewController;
//    NSString * _titleText;
//    NSString * _processingMessageText;
//    NSString * _messageText;
//    NSString * _leftBtnText;
//    NSString * _middleBtnText;
//    NSString * _rightBtnText;
//    
//    BtnClickBlock _leftBtnBlock;
//    BtnClickBlock _middleBtnBlock;
//    BtnClickBlock _rightBtnBlock;
//    
//    UILabel * _lbTitle;
//    UIActivityIndicatorView * _aivProcessing;
//    UILabel * _lbProcessing;
//    UILabel * _lbMessage;
//    UIButton * _btnLeft;
//    UIButton * _btnMiddle;
//    UIButton * _btnRight;
//    UIImageView * _hls1;
//    UIImageView * _hls2;
//    UIImageView * _hls3;
//    UIImageView * _vls1;
//    UIImageView * _vls2;
//}
//
//- (id)initWithFrame:(CGRect)frame {
//    self = [super initWithFrame:frame];
//    if (self) {
//        // Initialization code
//    }
//    return self;
//}
//
//- (id)init {
//    // 以满屏创建
//    self = [super initWithFrame:CGRectMake(0, 0, UI_SCREEN_WIDTH, UI_SCREEN_HEIGHT)];
//    if (self) {
//        // do nothing
//    }
//    return self;
//}
//
//
//- (id) initWithViewController:(UIViewController *)viewController Title:(NSString *)titleText processingMessage:(NSString *)processingMessageText message:(NSString *)messageText leftBtn:(NSString *)leftBtnText leftBtnBlock:(void (^)(UIButton *, TSCMyDialog *))leftBtnBlock middleBtn:(NSString *)middleBtnText middleBtnBlock:(void (^)(UIButton *, TSCMyDialog *))middleBtnBlock rightBtn:(NSString *)rightBtnText rightBtnBlock:(void (^)(UIButton *, TSCMyDialog *))rightBtnBlock {
//    
//    // 初始化（以全屏创建）
//    self = [self init];
//    
//    // 设置各属性
//    _viewController = viewController;
//    _titleText = titleText;
//    _processingMessageText = processingMessageText;
//    _messageText = messageText;
//    _leftBtnText = leftBtnText;
//    _middleBtnText = middleBtnText;
//    _rightBtnText = rightBtnText;
//    
//    _leftBtnBlock = leftBtnBlock;
//    _middleBtnBlock = middleBtnBlock;
//    _rightBtnBlock = rightBtnBlock;
//    
//    // 初始化各UI元素
//    _lbTitle = nil;
//    _aivProcessing = nil;
//    _lbProcessing = nil;
//    _lbMessage = nil;
//    _btnLeft = _btnMiddle = _btnRight = nil;
//    _hls1 = _hls2 = _hls3 = nil;
//    _vls1 = _vls2 = nil;
//    
//    // 界面布局
//    [self layoutUI];
//    
//    return self;
//}
//
//- (void) layoutSubviews {
//    // do nothing
//}
//
//- (void) show {
//    // 先设置透明
//    self.alpha = 0.0;
//    
//    // 加入主窗体
//    // 方式一：加入全局窗体。特点：当前vc消失后，dialog依然在
////    [[[UIApplication sharedApplication].delegate window]addSubview:self];
//    // 方式二：加入当前窗体。特点：当前vc消失后，dialog也不在了
//    [[_viewController view] addSubview:self];
//    
//    // 动画显示
//    [UIView animateWithDuration:0.5 animations:^{
//        self.alpha = 1.0;
//    }];
//}
//
//- (void) dismiss {
//    // 动画显示
//    [UIView animateWithDuration:0.5 animations:^{
//        self.alpha = 0.0;
//    } completion:^(BOOL finished) {
//        // 从主窗体中移除
//        [self removeFromSuperview];
//    }];
//}
//
///*
// // Only override drawRect: if you perform custom drawing.
// // An empty implementation adversely affects performance during animation.
// - (void)drawRect:(CGRect)rect
// {
// // Drawing code
// }
// */
//
///* private */ - (void) layoutUI {
//    
//    // 添加modal背景
//    UIImageView * bg = [[UIImageView alloc]init];
//    [bg setBackgroundColor:COLOR_MT_DIALOG_MODAL];
//    [self setRect:bg width:UI_SCREEN_WIDTH height:UI_SCREEN_HEIGHT];
//    [self addSubview:bg];
//    
//    // modal注册事件
//    bg.userInteractionEnabled = YES;
//    UITapGestureRecognizer * tgrModalBGClicked = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(modalBGClicked)];
//    [bg addGestureRecognizer:tgrModalBGClicked];
//    
//    // 设置dialog
//    UIView * dialog = [[UIView alloc]init];
//    dialog.frame = CGRectMake(0, 0, UI_SCREEN_WIDTH / 4 * 3, 200); // 注：高度后续再调整
//    dialog.backgroundColor = COLOR_MT_DIALOG_BG;
//    [self addSubview:dialog];
//    
//    // 声明局部变量
//    CGFloat dw = dialog.frame.size.width; // 保存dialog宽度
//    CGFloat baseY = 0; // Y轴上每添加一个UI元素，就将新增元素的高度加到这个值上
//    CGFloat baseX = 0; // X轴上每添加一个UI元素，就将新增元素的高度加到这个值上
//    UIFont * systemFont = [TSCMyUIUtil getSystemDefaultFont];
//    
//    BOOL hasTitle = ![TSCMyUtil isStringEmpty:_titleText];
//    BOOL hasProcessing = ![TSCMyUtil isStringEmpty:_processingMessageText];
//    BOOL hasMessage = ![TSCMyUtil isStringEmpty:_messageText];
//    BOOL hasLeftBtn = ![TSCMyUtil isStringEmpty:_leftBtnText];
//    BOOL hasMiddleBtn = ![TSCMyUtil isStringEmpty:_middleBtnText];
//    BOOL hasRightBtn = ![TSCMyUtil isStringEmpty:_rightBtnText];
//    
//    // ===== 1 从上至下绘制UI元素
//    
//    // 设置title
//    if(hasTitle) {
//        _lbTitle = [[UILabel alloc]init];
//        _lbTitle.font = systemFont;
//        _lbTitle.text = _titleText;
//        _lbTitle.textAlignment = NSTextAlignmentCenter;
//        _lbTitle.frame = CGRectMake(0, 0, dw, ELEMENT_HEIGHT);
//        [dialog addSubview:_lbTitle];
//        
//        // 更新Y
//        baseY = _lbTitle.frame.origin.y + _lbTitle.frame.size.height;
//        
//        // hls1
//        if (
//            hasProcessing
//            ||
//            hasMessage
//            ||
//            hasLeftBtn
//            ||
//            hasMiddleBtn
//            ||
//            hasRightBtn
//            ) {
//            _hls1 = [[UIImageView alloc]init];
//            [_hls1 setBackgroundColor:COLOR_MT];
//            _hls1.frame = CGRectMake(0, baseY, dw, HLSH);
//            [dialog addSubview:_hls1];
//            
//            // 更新Y
//            baseY += _hls1.frame.size.height;
//        }
//    }
//    
//    // 设置进度标识
//    if(hasProcessing) {
//        _aivProcessing = [[UIActivityIndicatorView alloc]init];
//        _aivProcessing.color = COLOR_MT;
//        _aivProcessing.frame = CGRectMake(0, 0, PROCESSING_INDICATOR_WH, PROCESSING_INDICATOR_WH);
//        _aivProcessing.center = CGPointMake(_aivProcessing.frame.size.width, (baseY + ELEMENT_HEIGHT /2)); // x为自身宽度，y居中
//        [dialog addSubview:_aivProcessing];
//        [_aivProcessing startAnimating];
//        
//        _lbProcessing = [[UILabel alloc]init];
//        _lbProcessing.font = systemFont;
//        _lbProcessing.text = _processingMessageText;
//        _lbProcessing.textAlignment = NSTextAlignmentCenter;
//        _lbProcessing.frame = CGRectMake(0, baseY, dw, 50);
//        [dialog addSubview:_lbProcessing];
//        
//        // 更新Y
//        baseY += _lbProcessing.frame.size.height;
//        
//        // hls2
//        if (
//            hasMessage
//            ||
//            hasLeftBtn
//            ||
//            hasMiddleBtn
//            ||
//            hasRightBtn
//            ) {
//            _hls2 = [[UIImageView alloc]init];
//            [_hls2 setBackgroundColor:COLOR_MT];
//            _hls2.frame = CGRectMake(0, baseY, dw, HLSH);
//            [dialog addSubview:_hls2];
//            
//            // 更新Y
//            baseY += _hls2.frame.size.height;
//        }
//    }
//    
//    
//    // 设置message
//    if(hasMessage) {
//        _lbMessage = [[UILabel alloc]init];
//        _lbMessage.font = systemFont;
//        _lbMessage.text = _messageText;
//        _lbMessage.textAlignment = NSTextAlignmentCenter;
//        _lbMessage.frame = CGRectMake(0, baseY, dw, ELEMENT_HEIGHT);
//        [dialog addSubview:_lbMessage];
//        
//        // 更新Y
//        baseY += _lbMessage.frame.size.height;
//        
//        // hls3
//        if (
//            hasLeftBtn
//            ||
//            hasMiddleBtn
//            ||
//            hasRightBtn
//            ) {
//            _hls3 = [[UIImageView alloc]init];
//            [_hls3 setBackgroundColor:COLOR_MT];
//            _hls3.frame = CGRectMake(0, baseY, dw, 1);
//            [dialog addSubview:_hls3];
//            
//            // 更新Y
//            baseY += _hls3.frame.size.height;
//        }
//    }
//    
//    // 计算按钮宽度
//    int btnNum = 0;
//    if (hasLeftBtn) {
//        btnNum++;
//    }
//    if (hasMiddleBtn) {
//        btnNum++;
//    }
//    if (hasRightBtn) {
//        btnNum++;
//    }
//    CGFloat btnW = btnNum == 0 ? 0 : dw / btnNum;
//    
//    // ===== 2. 从左至右绘制UI元素
//    
//    // 左按钮
//    if(hasLeftBtn) {
//        _btnLeft = [UIButton buttonWithType:UIButtonTypeSystem]; // 确保点击时产生阴影
//        [_btnLeft setTitle:_leftBtnText forState:UIControlStateNormal];
//        [_btnLeft setTitleColor:COLOR_MT forState:UIControlStateNormal];
////        [_btnLeft reversesTitleShadowWhenHighlighted];
//        _btnLeft.frame = CGRectMake(baseX, baseY, btnW, ELEMENT_HEIGHT);
//        [dialog addSubview:_btnLeft];
//        
//        // 注册事件
//        [_btnLeft addTarget:self action:@selector(leftBtnClicked) forControlEvents:UIControlEventTouchUpInside];
//        
//        // 更新X
//        baseX += _btnLeft.frame.size.width;
//    }
//    
//    // vls1
//    if (hasLeftBtn && (hasMiddleBtn || hasRightBtn)) {
//        _vls1 = [[UIImageView alloc]init];
//        [_vls1 setBackgroundColor:COLOR_MT];
//        _vls1.frame = CGRectMake(baseX, baseY, VLSW, ELEMENT_HEIGHT);
//        [dialog addSubview:_vls1];
//        
//        // 更新X
//        baseX += _vls1.frame.size.width;
//    }
//    
//    // 中按钮
//    if(hasMiddleBtn) {
//        _btnMiddle =  [UIButton buttonWithType:UIButtonTypeSystem]; // 确保点击时产生阴影
//        [_btnMiddle setTitle:_middleBtnText forState:UIControlStateNormal];
//        [_btnMiddle setTitleColor:COLOR_MT forState:UIControlStateNormal];
//        _btnMiddle.frame = CGRectMake(baseX, baseY, btnW, ELEMENT_HEIGHT);
//        [dialog addSubview:_btnMiddle];
//        
//        // 注册事件
//        [_btnMiddle addTarget:self action:@selector(middleBtnClicked) forControlEvents:UIControlEventTouchUpInside];
//        
//        // 更新X
//        baseX += _btnMiddle.frame.size.width;
//    }
//    
//    // vls2
//    if (hasMiddleBtn && hasRightBtn) {
//        _vls2 = [[UIImageView alloc]init];
//        [_vls2 setBackgroundColor:COLOR_MT];
//        _vls2.frame = CGRectMake(baseX, baseY, VLSW, ELEMENT_HEIGHT);
//        [dialog addSubview:_vls2];
//        
//        // 更新X
//        baseX += _vls2.frame.size.width;
//    }
//    
//    // 右按钮
//    if(hasRightBtn) {
//        _btnRight =  [UIButton buttonWithType:UIButtonTypeSystem]; // 确保点击时产生阴影
//        [_btnRight setTitle:_rightBtnText forState:UIControlStateNormal];
//        [_btnRight setTitleColor:COLOR_MT forState:UIControlStateNormal];
//        _btnRight.frame = CGRectMake(baseX, baseY, btnW, ELEMENT_HEIGHT);
//        [dialog addSubview:_btnRight];
//        
//        // 注册事件
//        [_btnRight addTarget:self action:@selector(rightBtnClicked) forControlEvents:UIControlEventTouchUpInside];
//        
//        // 更新X
//        baseX += _btnRight.frame.size.width;
//    }
//    
//    // ===== 3. 重新调整dialog高度
//        
//    // 更新Y
//    if (hasLeftBtn || hasMiddleBtn || hasRightBtn) {
//        baseY += ELEMENT_HEIGHT;
//    }
//    
//    [self setRect:dialog width:dialog.frame.size.width height:baseY];
//    
//    // 再次调整因高度发生变化后的dialog位置
//    dialog.center =CGPointMake(UI_SCREEN_WIDTH / 2, UI_SCREEN_HEIGHT / 2);
//    
//    // dialog圆角
//    // 注：圆角要在dialog高度不再变化时再应用
//    [TSCMyUIUtil setUIRoundRectBG:dialog radius:10.0];
//}
//
//- (void) replaceContentViewWithOtherDialog:(TSCMyDialog *)otherDialog {
//    // 删除每一个旧子view
//    for (UIView * subView in [self subviews]) {
//        [subView removeFromSuperview];
//    }
//    
//    // 将新dialog整体作为子view添加进来。这样做的效果是：如果多次调用此方法，则dialog的外层会不断嵌套UIView
//    [self addSubview:otherDialog];
//    
//    
//    
//    // 注：不能这样写，是因为子view被添加到新的父view后，原来的事件（target）接收者已经不在了（原来的接收者是旧父view，可能被系统回收了），而新的接收者还没有被子view注册。除非手工遍历每一个子view，重新将它们的事件注册在新父view上
////    // 添加所有新子view
////    for (UIView * subView in [otherDialog subviews]) {
////        [self addSubview:subView];
////    }
//    
//}
//
///* private */ - (void) setRect:(UIView *)view width:(int)width height:(int)height {
//    CGRect r = view.frame;
//    r.size.width = width;
//    r.size.height = height;
//    view.frame = r;
//}
//
///* private */ - (void) modalBGClicked {
//    // 点击背景时自动关闭
//    [self dismiss];
//}
///* private */ - (void) leftBtnClicked {
//    if (_leftBtnBlock) {
//        _leftBtnBlock(_btnLeft, self);
//    }
//}
///* private */ - (void) middleBtnClicked {
//    if (_middleBtnBlock) {
//        _middleBtnBlock(_btnMiddle, self);
//    }
//}
///* private */ - (void) rightBtnClicked {
//    if (_rightBtnBlock) {
//        _rightBtnBlock(_btnRight, self);
//    }
//}
//
//@end
